using System;
using System.Data;
using System.Data.Common;
using System.Collections.Generic;
using System.Xml;
using System.Collections;
using ACFramework;

namespace ACSeguridad
{
	public partial class EUsuariosPlantillas
	{
		#region Campos
		
		private Int32 m_user_iduser;
		private String m_apli_codigo;
		private String m_empr_codigo;
		private String m_ptla_codigo;
		private String m_pusr_activo;
		private String m_pusr_usrcrea;
		private DateTime m_pusr_feccrea;
		private String m_pusr_usrmod;
		private DateTime m_pusr_fecmod;
		private Boolean m_nuevo;
		private Boolean m_modificado;
		private Boolean m_eliminado;

		private Hashtable m_hash;
		
		#endregion

		#region Constructores
		
			/// <summary>
			/// Inicializar una nueva instancia de la clase EUsuariosPlantillas.
			/// </summary>
		public EUsuariosPlantillas()
		{
			
		}

		#endregion

		#region Propiedades
		
		/// <summary>
		/// Gets or sets el valor de: USER_IdUser.
		/// </summary>
		public Int32 USER_IdUser
		{
			get { return m_user_iduser; }
			set
			{
				if (m_user_iduser != null)
				{
					if (m_user_iduser != value)
					{
						m_user_iduser = value;
						OnUSER_IdUserChanged(m_user_iduser, EventArgs.Empty);
					}
				}
				else
				{
					m_user_iduser = value;
					OnUSER_IdUserChanged(m_user_iduser, EventArgs.Empty);
				}
			}
		}
		/// <summary>
		/// Gets or sets el valor de: APLI_Codigo.
		/// </summary>
		public String APLI_Codigo
		{
			get { return m_apli_codigo; }
			set
			{
				if (m_apli_codigo != null)
				{
					if (m_apli_codigo != value)
					{
						m_apli_codigo = value;
						OnAPLI_CodigoChanged(m_apli_codigo, EventArgs.Empty);
					}
				}
				else
				{
					m_apli_codigo = value;
					OnAPLI_CodigoChanged(m_apli_codigo, EventArgs.Empty);
				}
			}
		}
		/// <summary>
		/// Gets or sets el valor de: EMPR_Codigo.
		/// </summary>
		public String EMPR_Codigo
		{
			get { return m_empr_codigo; }
			set
			{
				if (m_empr_codigo != null)
				{
					if (m_empr_codigo != value)
					{
						m_empr_codigo = value;
						OnEMPR_CodigoChanged(m_empr_codigo, EventArgs.Empty);
					}
				}
				else
				{
					m_empr_codigo = value;
					OnEMPR_CodigoChanged(m_empr_codigo, EventArgs.Empty);
				}
			}
		}
		/// <summary>
		/// Gets or sets el valor de: PTLA_Codigo.
		/// </summary>
		public String PTLA_Codigo
		{
			get { return m_ptla_codigo; }
			set
			{
				if (m_ptla_codigo != null)
				{
					if (m_ptla_codigo != value)
					{
						m_ptla_codigo = value;
						OnPTLA_CodigoChanged(m_ptla_codigo, EventArgs.Empty);
					}
				}
				else
				{
					m_ptla_codigo = value;
					OnPTLA_CodigoChanged(m_ptla_codigo, EventArgs.Empty);
				}
			}
		}
		/// <summary>
		/// Gets or sets el valor de: PUSR_Activo.
		/// </summary>
		public String PUSR_Activo
		{
			get { return m_pusr_activo; }
			set
			{
				if (m_pusr_activo != null)
				{
					if (m_pusr_activo != value)
					{
						m_pusr_activo = value;
						OnPUSR_ActivoChanged(m_pusr_activo, EventArgs.Empty);
					}
				}
				else
				{
					m_pusr_activo = value;
					OnPUSR_ActivoChanged(m_pusr_activo, EventArgs.Empty);
				}
			}
		}
		/// <summary>
		/// Gets or sets el valor de: PUSR_UsrCrea.
		/// </summary>
		public String PUSR_UsrCrea
		{
			get { return m_pusr_usrcrea; }
			set
			{
				if (m_pusr_usrcrea != value)
				{ m_pusr_usrcrea = value; }
			}
		}
		/// <summary>
		/// Gets or sets el valor de: PUSR_FecCrea.
		/// </summary>
		public DateTime PUSR_FecCrea
		{
			get { return m_pusr_feccrea; }
			set
			{
				if (m_pusr_feccrea != value)
				{ m_pusr_feccrea = value; }
			}
		}
		/// <summary>
		/// Gets or sets el valor de: PUSR_UsrMod.
		/// </summary>
		public String PUSR_UsrMod
		{
			get { return m_pusr_usrmod; }
			set
			{
				if (m_pusr_usrmod != value)
				{ m_pusr_usrmod = value; }
			}
		}
		/// <summary>
		/// Gets or sets el valor de: PUSR_FecMod.
		/// </summary>
		public DateTime PUSR_FecMod
		{
			get { return m_pusr_fecmod; }
			set
			{
				if (m_pusr_fecmod != value)
				{ m_pusr_fecmod = value; }
			}
		}
		/// <summary>
		/// Gets Nuevo.
		/// </summary>
		public Boolean Nuevo
		{
			get { return m_nuevo; }
		}
		/// <summary>
		/// Gets Modificado.
		/// </summary>
		public Boolean Modificado
		{
			get { return m_modificado; }
		}
		/// <summary>
		/// Gets Eliminado.
		/// </summary>
		public Boolean Eliminado
		{
			get { return m_eliminado; }
		}
		public Hashtable Hash
		{
			get{ return m_hash;  }
		}
		public static String Tabla
		{
			get{ return "UsuariosPlantillas"; }
		}
		public static String Esquema
		{
			get{ return "dbo"; }
		}

		
		#endregion

		#region Eventos
		
		public event EventHandler USER_IdUserChanged;
		public event EventHandler APLI_CodigoChanged;
		public event EventHandler EMPR_CodigoChanged;
		public event EventHandler PTLA_CodigoChanged;
		public event EventHandler PUSR_ActivoChanged;

		protected void OnUSER_IdUserChanged(Object sender, EventArgs e)
		{
			if (USER_IdUserChanged != null)
			{
				USER_IdUserChanged(sender, e);
				ActualizarInstancia();
			}
		}
		protected void OnAPLI_CodigoChanged(Object sender, EventArgs e)
		{
			if (APLI_CodigoChanged != null)
			{
				APLI_CodigoChanged(sender, e);
				ActualizarInstancia();
			}
		}
		protected void OnEMPR_CodigoChanged(Object sender, EventArgs e)
		{
			if (EMPR_CodigoChanged != null)
			{
				EMPR_CodigoChanged(sender, e);
				ActualizarInstancia();
			}
		}
		protected void OnPTLA_CodigoChanged(Object sender, EventArgs e)
		{
			if (PTLA_CodigoChanged != null)
			{
				PTLA_CodigoChanged(sender, e);
				ActualizarInstancia();
			}
		}
		protected void OnPUSR_ActivoChanged(Object sender, EventArgs e)
		{
			if (PUSR_ActivoChanged != null)
			{
				PUSR_ActivoChanged(sender, e);
				ActualizarInstancia();
			}
		}
		
		#endregion

		#region Metodos
		
		public void Instanciar(ACEInstancia x_instancia)
		{
			switch (x_instancia)
			{
				case ACEInstancia.Consulta:
					this.m_nuevo = false;
					this.m_modificado = false;
					this.m_eliminado = false;
					break;
				case ACEInstancia.Nuevo:
					this.m_nuevo = true;
					this.m_modificado = false;
					this.m_eliminado = false;
					break;
				case ACEInstancia.Modificado:
					this.m_nuevo = false;
					this.m_modificado = true;
					this.m_eliminado = false;
					break;
				case ACEInstancia.Eliminado:
					this.m_nuevo = false;
					this.m_modificado = false;
					this.m_eliminado = true;
					break;
			}
		}
		public void ActualizarInstancia()
		{
			if (!m_nuevo)
			{
				if (!m_eliminado)
				{ Instanciar(ACEInstancia.Modificado); }
			}
		}
		
		#endregion
	}
}

